﻿using EMS.system.Entityies.BaseData;
using EMS.system.IEntityAppService.MasterData.WorkstationService.WorkstationDTOs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace EMS.system.IEntityAppService.MasterData.WorkstationService
{
    public interface IWorkstationAppService:IApplicationService
    {
        /// <summary>
        /// 获取工作站显示 分页 查询
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="workstationCode"></param>
        /// <param name="workstationName"></param>
        /// <param name="workshopName"></param>
        /// <param name="processBelongs"></param>
        /// <returns></returns>
        Task<PagedResult> GetWorkstationList(int pageIndex, int pageSize, string? workstationName, string? workshopName);
        /// <summary>
        /// 获取字典表数据绑定下拉框
        /// </summary>
        /// <returns></returns>
        Task<List<DictItem>> GetDictItems(int dictTypeId);
        /// <summary>
        /// Redis集群
        /// </summary>
        /// <param name="dictTypeId"></param>
        /// <returns></returns>
        Task<List<DictItem>> GetDictItemListRedis(int dictTypeId);

        /// <summary>
        /// 添加工作站
        /// </summary>
        /// <param name="workstationDTO"></param>
        /// <returns></returns>
        Task<int> CreateWorkstation(WorkstationDTO workstationDTO);
        /// <summary>
        /// 删除工作站
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<int> DeleteWorkstation(string ids);
        /// <summary>
        /// 更新工作站
        /// </summary>
        /// <param name="workstationDTO"></param>
        /// <returns></returns>
        Task<WorkstationDTO> GetWorkstationById(int id);
        /// <summary>
        /// 更新工作站
        /// </summary>
        /// <param name="workstationDTO"></param>
        /// <returns></returns>
        Task<int> UpdateWorkstation(WorkstationDTO workstationDTO);
    }
}
